#pragma once

#include "AEUpdateable.hpp"

BEGIN_ARETE_NAMESPACE(scripting)

class AEScriptEngine
	: public components::AEUpdateable
{
public:
	AEScriptEngine(void);
	~AEScriptEngine(void);

	void initialize(void);

	void messageCallback(const asSMessageInfo&);
	void update(float);

	asIScriptEngine* getScriptEngine(void);
	const float& getGCInterval(void);

private:

	asIScriptEngine* m_engine;
	const float m_gc_interval;
};

END_ARETE_NAMESPACE